"""
练习 6.1：⼈ 使⽤⼀个字典来存储⼀个⼈的信息，包括名、姓、年龄
和居住的城市。该字典应包含键 first_name、last_name、age 和
city。将存储在该字典中的每项信息都打印出来。
代码部分：
people_0 = {
    'first_name': '方',
    'last_name':'宇杰',
    'age':'23',
    'city':'常州'
}
print(f'姓：{people_0['first_name']}')
print(f'名：{people_0['last_name']}')
print(f'年龄：{people_0['age']}')
print(f'居住地：{people_0['city']}')
"""


"""
练习 6.2：喜欢的数 1 使⽤⼀个字典来存储⼀些⼈喜欢的数。请想出
5 个⼈的名字，并将这些名字⽤作字典中的键。再想出每个⼈喜欢的⼀
个数，并将这些数作为值存储在字典中。打印每个⼈的名字和喜欢的
数。为了让这个程序更有趣，通过询问朋友确保数据是真实的。
代码部分：
favourite_number1 = {
    'Bruno_mars' : '7',
    'Justin_bieber' : '9',
    'Ed_sheeran' : '3' ,
    'David_Tao' : '22' ,
    'Khalil Fong' : '23'
}
number1 = favourite_number1['Bruno_mars']
number2 = favourite_number1['Justin_bieber']
number3 = favourite_number1['Ed_sheeran']
number4 = favourite_number1['David_Tao']
number5 = favourite_number1['Khalil Fong']
print(f'Bruno_mars favourite number is {number1},\nJustin_bieber favourite number is {number2},\nEd_sheeran favourite '
      f' number is {number3},\nDavid_Tao favourite number is {number4},\nKhalil Fong favourite number is {number5}')
"""


"""
练习 6.3：词汇表 1 Python 字典可⽤于模拟现实⽣活中的字典。为避
免混淆，我们将后者称为词汇表。
想出你在前⾯学过的 5 个编程术语，将它们⽤作词汇表中的键，
并将它们的含义作为值存储在词汇表中。
以整洁的⽅式打印每个术语及其含义。为此，既可以先打印术
语，在它后⾯加上⼀个冒号，再打印其含义；也可以先在⼀⾏⾥
打印术语，再使⽤换⾏符（\n）插⼊⼀个空⾏，然后在下⼀⾏⾥
以缩进的⽅式打印其含义。
代码部分：
vocabulary = {'Data Structure':'数据结构是在计算机中有效地组织和存储数据的方式。',
              'Algorithm':'算法是为解决特定问题或执行任务定义的一系列步骤。',
              'Object':'对象是类的实例，包含了类定义的属性（数据）和方法（行为）。',
              'Variable':'变量是用于在程序运行时存储数据的容器。',
              'Function':'函数是定义一系列操作的代码块，可接收输入并返回输出。'
            }
print(f'Data Structure:{vocabulary['Data Structure']}')
print(f'Algorithm:{vocabulary['Algorithm']}')
print(f'Object:{vocabulary['Object']}')
print(f'Variable:{vocabulary['Variable']}')
print(f'Function:{vocabulary['Function']}')
"""

"""
练习 6.4：词汇表 2 现在你知道了如何遍历字典，请整理你为练习 6.3
编写的代码，将其中的⼀系列函数调⽤ print() 替换为⼀个遍历字典
中键和值的循环。确保该循环正确⽆误后，再在词汇表中添加 5 个
Python 术语。当你再次运⾏这个程序时，这些新术语及其含义将⾃动
包含在输出中。
代码部分：
vocabulary = {'Data Structure':'数据结构是在计算机中有效地组织和存储数据的方式。',
              'Algorithm':'算法是为解决特定问题或执行任务定义的一系列步骤。',
              'Object':'对象是类的实例，包含了类定义的属性（数据）和方法（行为）。',
              'Variable':'变量是用于在程序运行时存储数据的容器。',
              'Function':'函数是定义一系列操作的代码块，可接收输入并返回输出。',
              'class':'类',
              'method':'方法',
              'module':'模式',
              'package':'包',
              'argument':'参数'
            }
for name,value in vocabulary.items():
    print(f'{name.title()}:{value}.')
"""


"""
练习 6.5：河流 创建⼀个字典，在其中存储三条河流及其流经的国
家。例如，⼀个键值对可能是 'Nile': 'egypt'。
使⽤循环为每条河流打印⼀条消息，如下所⽰。
The Nile runs through Egypt.
使⽤循环将该字典中每条河流的名字打印出来。
使⽤循环将该字典包含的每个国家的名字打印出来。
rivers = {
    '亚马逊河':'秘鲁、厄瓜多尔、哥伦比亚、委内瑞拉、圭亚那、苏里南、玻利维亚和巴西',
    '刚果河':'赞比亚、刚果民主共和国和刚果共和国',
    '长江':'中国'
}
for river in rivers.keys():
    print(river)
for countries in rivers.values():
    print(countries)

"""


"""
练习 6.6：调查 在 6.3.1 节编写的程序 favorite_languages.py 中执⾏以
下操作。
创建⼀个应该会接受调查的⼈的名单，其中有些⼈已在字典中，
⽽其他⼈不在字典中。
遍历这个名单。对于已参与调查的⼈，打印⼀条消息表⽰感谢；
对于还未参与调查的⼈，打印⼀条邀请参加调查的消息。
代码部分：
favorite_languages = {
 'jen': 'python',
 'sarah': 'c',
 'edward': 'rust',
 'phil': 'python',
 }
for name, language in favorite_languages.items():
 #print(f"{name.title()}'s favorite language is {language.title()}.")
 lists = ['jen','rose','jack']
for new_name in lists:
    if new_name in favorite_languages.keys():
     print(f'{new_name.title()},Thanks for coming!')
    else:
     print(f'{new_name.title()},Please to attend the research!')
"""


"""
练习 6.7：⼈们 在为练习 6.1 编写的程序中，再创建两个表⽰⼈的字
典，然后将这三个字典都存储在⼀个名为 people 的列表中。遍历这
个列表，将其中每个⼈的所有信息都打印出来。
代码部分：
people_0 = {
    'first_name': '方',
    'last_name':'宇杰',
    'age':'23',
    'city':'常州'
}
peopel_1 = {
    'first_name': '陈',
    'last_name':'秋怡',
    'age':'23',
    'city':'盐城'
}
peopel_2 = {
    'first_name': '陈',
    'last_name':'相',
    'age':'23',
    'city':'常州'
}
people = [people_0,peopel_1,peopel_2]
for people_one in people:
    print(people_one)
"""


"""
练习 6.8：宠物 创建多个表⽰宠物的字典，每个字典都包含宠物的类
型及其主⼈的名字。将这些字典存储在⼀个名为 pets 的列表中，再
遍历该列表，并将有关每个宠物的所有信息打印出来。
pet_0 = {
    'type' :'dog' ,
    'master_name' : '方宇杰'
}
pet_1 = {
    'type' :'dog' ,
    'master_name' : '陈相'
}
pet_2 = {
    'type' :'cat' ,
    'master_name' : '陈秋怡'
}
pets = [pet_0,pet_1,pet_2]
for pet in pets :
    print(pet)
"""


"""
练习 6.9：喜欢的地⽅ 创建⼀个名为 favorite_places 的字典。
在这个字典中，将三个⼈的名字⽤作键，并存储每个⼈喜欢的 1〜3 个
地⽅。为让这个练习更有趣些，让⼀些朋友说出他们喜欢的⼏个地
⽅。遍历这个字典，并将其中每个⼈的名字及其喜欢的地⽅打印出
来。

favorite_place = {
    'Tom' : ['常州','南京' ],
    'Jerry' : ['北京','上海'],
    'Franky' : ['广州','日本']
}
for name , places in favorite_place.items():
    print(f'{name},his favorite places are {places}')
"""

"""
练习 6.10：喜欢的数 2 修改为练习 6.2 编写的程序，让每个⼈都可以
有多个喜欢的数字，然后将每个⼈的名字及其喜欢的数打印出来。
favorite_number1 = {
    'Bruno_mars' : ['7','2','3'],
    'Justin_bieber' : ['9','22','11','2'],
    'Ed_sheeran' : ['3','12','44'],
    'David_Tao' : ['22',''] ,
    'Khalil Fong' : ['23,','25','55']
}
for name , numbers in favorite_number1.items() :
    print(f'{numbers} ： \nThese are {name} favorite numbers.')

"""

"""
练习 6.11：城市 创建⼀个名为 cities 的字典，将三个城市名⽤作
键。对于每座城市，都创建⼀个字典，并在其中包含该城市所属的国
家、⼈⼝约数以及⼀个有关该城市的事实。表⽰每座城市的字典都应
包含 country、population 和 fact 等键。将每座城市的名字以及
相关信息都打印出来。

cities = {
    'BeiJing' : {
      'country' : 'China',
      'population' : 'Asia',
      'fact' : 'capital in China'
    },
    'Tokyo' : {
      'country' : 'Japan',
      'population' : 'Asia',
      'fact' : 'capital in Japan'
    },
    'NewYork' : {
      'country' : 'America',
      'population' : 'South America',
      'fact' : 'capital in America'
    }
}
for city , city_info in cities.items() :
    print(f'{city} information are :{city_info['country']}、{city_info['population']}、{city_info['fact']}')
"""


"""

"""